perm filename SEC3[DOC,BGB] blob
sn#093413 filedate 1974-03-27 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00006 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 ~λ15JCFASECTION 3
C00005 00003 3.1 EUCLIDEAN TRANSFORMATIONS.
C00009 00004 3.2 STRENGTHS OF TRANSFORMATION.
C00012 00005 ~~F.3.3 EUCLIDEAN SWITCHES.
C00017 00006 3.4 THE ITERATION COUNTER.
C00020 ENDMK
C⊗;
~λ15;JCFASECTION 3
GEOMETRIC COMMANDS
~JAFA
3.1 EUCLIDEAN TRANSFORMATION KEYS.
Translation, α Rotation, β Dilation, ε Reflection.
";" Transform Minus X-Axis. ":" ...Plus X-Axis.
"(" Transform Minus Y-Axis. ")" ...Plus Y-Axis.
"-" Transform Minus Z-Axis. "*" ...Plus Z-Axis.
"!" Translation Default. "@" Rotation Default.
3.2 STRENGTHS OF TRANSFORMATION.
3.2.1 "/" Halve a Transformation Strength.
"\" Double a Transformation Strength.
3.2.2 "λ<expr>" Set Translation Strength, TDEL.
"π<expr>" Set Rotation Strength, RDEL.
"%<expr>" Set Dilation Strength, DDEL.
3.2.3 "<digit>" Set Transform Strength Immediate.
3.3 EUCLIDEAN SWITCHES.
3.3.1 "F" Step Frame Switch Forwards.
"βF" Step Frame Switch Backwards.
3.3.2 "Q" Toggle Frame Origin Switch.
3.3.3 "βA" Step Axis Counter.
3.3.4 "∀" Enable All Body Motions.
"α∀" Disable Frame Motion.
"β∀" Disable Vertex Motion.
"ε∀" Disable Parts Motion.
3.4 THE ITERATION COUNTER.
"<digit>" Accumulate Iteration Count.
"<return>" Reset Iteration Count to Zero.
3.5 DIRECT EUCLIDEAN COMMANDS.
3.5.1 "U" Unmove a Body.
3.5.2 "X PLACE <X> <Y> <Z>"
3.5.3 "X ORIENT <PAN> <TILT> <SWING>"
3.1 EUCLIDEAN TRANSFORMATIONS.
~JA;FA
Translation, α Rotation, β Dilation, ε Reflection.
";" Transform Minus X-Axis. ":" ...Plus X-Axis.
"(" Transform Minus Y-Axis. ")" ...Plus Y-Axis.
"-" Transform Minus Z-Axis. "*" ...Plus Z-Axis.
"!" Translation Default. "@" Rotation Default.
~JUF. The Euclidean geometric transformations are translation,
rotation, dilation and reflection. The entity in the top of the stack
is transformed by typing one of the six characters: colon, semicolon,
left parenthesis, right parenthesis, minus sign or asterisk. The
characters colon, left parenthesis and minus sign transform the
object in the negative direction with respect to the X-axis, the
Y-axis and the Z-axis respectively. The characters semicolon, right
parenthesis and asterisk transform the object in the negative
direction with respect to the X-axis, the Y-axis and the Z-axis
respectively. The particular transformation is selected by keying the
control bits: none, control, meta and meta-control which
respectively select translation, rotation, dilation and reflection.
Finally, the no control bits case can be forced to be rotation by the
"@" rotation default command, or translation by the "!" translation
default command.
Translation moves the top entity in the stack in the
direction specified by one unit of translation strength, TDEL.
Rotation rotates the entity about the axis specified by one unit of
rotational strength, RDEL. Positive rotations are counter clockwise
and negative rotations are clockwise.
Dilations and reflections refer to a three axis count
selector. State 1 causes dilation (reflection) to be done on the
specified axis, dilation state 2 causes dilation (reflection) on the
two axes not indicated, and state 3 causes dilation (relfection) on
all the axes. The axis count selector is advanced by typing "βA". The
state of the selector is displayed as a digit 1, 2 or 3 just to the
right of the dilation strength's per cent sign in the editor status
in the upper right of the display screen.
When the dilation strength, DDEL, is less than 100% a
positive dilation will scale the entity by 1/DDEL and a negative
dilation will scale the entity by DDEL. Positive and negative keyings
make no difference in the execution of a reflection.
3.2 STRENGTHS OF TRANSFORMATION.
3.2.1 "/" Halve a Transformation Strength.
"\" Double a Transformation Strength.
The strength of a Euclidean transformation can be halved or
doubled by keying the transform's control bits and by striking slash
or back slash respectively.
3.2.2 "λ<real expression>" Set Translation Strength, TDEL.
"π<real expression>" Set Rotation Strength, RDEL.
"%<real expression>" Set Dilation Strength, DDEL.
The strengths of the Euclidean transformations can be entered
numerically by typing "λ", "π" or "%" followed by an arithmetic
expression of numerical constants. The simple expression scanner can
take "+", "-", "*", "/" and parenthesis in the usual precedence
order; the scanner also evaluates the pi character, "π", to
3.1415927; numbers suffixed with the inch mark double quote """ are
divided by twelve; numbers suffixed with a left single quote "`" are
multiplied by 1.745329E-2 which converts degrees into radians.
3.2.3 "<digits>" Set Transform Strength Immediate.
The strength of a Euclidean transformation can be set by
keying the Transform's control bits and by striking a digit from zero
to nine. Keying "ε<digit>" sets the strength of translation; a digit
without meta-control bits contributes to the iteration count. For
Translation: "ε0" sets TDEL to 1/16 of a foot, "ε4" sets TDEL to one
Foot, and "ε9" sets TDEL to 32 Feet. That is ε<digit> sets TDEL to
2.0↑(<digit>-4) feet. For Rotation: "α9" sets RDEL to π/2, "α8" sets
RDEL to π/4, and so on. For Dilation: "β1" sets DDEL to 10%, "β2"
sets DDEL to 20% and so on.
~~F.3.3 EUCLIDEAN SWITCHES.
3.3.1 "F" Step frame switch forwards.
"βF" Step frame switch backwards.
There are four frames of reference: world frame, body frame,
relative frame and camera frame. The world frame is that in which all
coordinates are stored; the world frame is the natural direct frame
of reference, all the other frames are represented in world frame
coordinates by a frame node which contains the origin location and
axes orientation of secondary frames. In particular, each body and
camera has a frame node, which determine a camera or a body frame of
reference that translates and rotates when Euclidean transformations
are applied to that body or camera. The relative frame mode is a
catch all; when a body is in the top of the stack, its relative frame
is that of the body of which it is a part; when a face is in the top
of the stack, its relative frame is a special face frame with Z-axis
parallel to the face's outward pointing normal. The "F" command steps
the frame switch selector forwards, "βF" steps the frame switch
selector backwards. The state of the frame switch selector is
displayed in the status in the upper right of the display screen.
3.3.2 "Q" Toggle Frame Origin Switch.
Euclidean transformations in world frame can be done with
repect to the world origin or with repect to the origin of the body
being transformed depending on the state of the FRMORG switch. In
particular, FRMORG affects world frame rotations: FRMORG true causes
rotation about a world axis thru the world origin; FRMORG false
causes rotation about an axis parallel to a world axis, but passing
thru the body origin. The FRMORG switch is flipped by the "Q"
command. The state of FRMORG is indicated by an asterisked in the
status display; the asterisk is present when FRMORG is true and
absent when FRMORG is false.
3.3.3 "βA" Step Axis Counter.
The three state switch named AXECNT affects dilations and
reflections. State-1 indicates dilation (reflection) only on the
specified axis. State-2 indicates dilation (reflection) on the two
axes not specified. State-3 indicates dilation (reflection) on all
three axes. The state of the AXECNT switch is indicated by a digit to
the right of the dilation strength's percent sign in the status
display. AXECNT is cycled forward by the "βA" command.
3.3.4 "∀" Enable All Body Motions.
"α∀" Disable Frame Motion.
"β∀" Disable Vertex Motion.
"ε∀" Disable Parts Motion.
A Euclidean transformation applied to a body, means applying
the tranform to the vertices, frame and parts of that body. Each of
these three phases of body transformation can be individually
disabled by the "∀" command with the appropriate conbination of
meta-control bits. With no meta-control bits, the ∀" command resets
all the body disable bits. Transforming a fully diabled body is a no
operation.
3.4 THE ITERATION COUNTER.
"<digit>" Accumulate Iteration Count.
"<return>" Reset Iteration Count to Zero.
Digits typed without control keys are accumulated into an
iteration counter. The iteration count is cleared by typing a
carriage return. The count applies to Euclidean
transformations and sweeps. The ability to iterate and
to do macros is not developed because of the existence of GEOMED
imbedded in LISP which provides better interactive programming
facilities than would be possible under the present character command
scanner. (Inspite of theoretical equivalences, it has been my design
goal to keep interactive editing distinct from interactive
programming).
3.5 DIRECT EUCLIDEAN COMMANDS.
3.5.1 "U" Unmove a Body.
This command applies the inverse of the given body's frame of
reference to the body itself. This has the effect of undoing any
translations and rotations that have been applied to the body; that
is the body's frame is brought back to be coincident with the world
frame of reference. Thus a polyhedral body can be constructed in a
standard orientation; then rotated randomly for inspection; and then
be brought back to it original orientation for further editing.
3.5.2 "X PLACE <X> <Y> <Z>"
The location of the body, camera or vertex in the top of the
stack is placed at the given world coordinates.
3.5.3 "X ORIENT <PAN> <TILT> <S.WING>"
The orientation of the given body or camera is set to the
specified values.